// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 6.14.2013
{$CLEO .cs}

//-------------MAIN---------------
thread 'TORESUBMARINE' 
0000: NOP 
$RYDER_TOTAL_PASSED_MISSIONS = 99 

:STROMSUBMARINE_28
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @STROMSUBMARINE_28 
if 
   Actor.DrivingVehicleType($PLAYER_ACTOR, #CLOVER)
jf @STROMSUBMARINE_28 
5@ = Actor.CurrentCar($PLAYER_ACTOR)

:STROMSUBMARINE_75
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @STROMSUBMARINE_1350 
if 
   not Car.Wrecked(5@)
jf @STROMSUBMARINE_1350 
if 
   Actor.Driving($PLAYER_ACTOR)
jf @STROMSUBMARINE_1350 
0407: store_coords_to 11@ 12@ 13@ from_car 5@ with_offset 0.0 0.0 0.0 
13@ -= 1.0 
092E: get_water_height_at 11@ 12@ ignore_waves 0 store_to 10@ 
if 
  10@ > -150.0 
jf @STROMSUBMARINE_75 
if 
0025:   10@ > 13@ // (float) 
jf @STROMSUBMARINE_75 
$RYDER_TOTAL_PASSED_MISSIONS = 98 
073C: car 5@ damage_componentB 1 
wait 200 
wait 500 
9@ = Car.Angle(5@)
02F6: 11@ = sine 9@ // (float) 
02F7: 12@ = cosine 9@ // (float) 
11@ *= 0.01 
12@ *= 0.01 
11@ *= -1.0 
07D5: set_car 5@ velocity_in_direction_XYZ 11@ 12@ 0.01 rotation_velocitiesXY 0.0 0.0 unk 0.0 

:STROMSUBMARINE_328
wait 20 
if 
   Player.Defined($PLAYER_CHAR)
jf @STROMSUBMARINE_1350 
if 
   Actor.Driving($PLAYER_ACTOR)
jf @STROMSUBMARINE_1350 
0407: store_coords_to 11@ 12@ 13@ from_car 5@ with_offset 0.0 0.0 0.0 
13@ -= 1.0 
092E: get_water_height_at 11@ 12@ ignore_waves 0 store_to 10@ 
if 
  10@ > -100.0 
jf @STROMSUBMARINE_1277 
if 
0025:   10@ > 13@ // (float) 
jf @STROMSUBMARINE_1277 
9@ = Car.Angle(5@)
if 
00E1:   player 0 pressed_key 16 
jf @STROMSUBMARINE_573 
Car.Angle(5@) = 9@
02F6: 11@ = sine 9@ // (float) 
02F7: 12@ = cosine 9@ // (float) 
11@ *= 0.01 
12@ *= 0.01 
11@ *= -1.0 
07D5: set_car 5@ velocity_in_direction_XYZ 11@ 12@ 0.01 rotation_velocitiesXY 0.0 0.0 unk 0.0 
jump @STROMSUBMARINE_887 

:STROMSUBMARINE_573
if 
00E1:   player 0 pressed_key 1 
jf @STROMSUBMARINE_632 
07D5: set_car 5@ velocity_in_direction_XYZ 0.0 0.0 -0.05 rotation_velocitiesXY 0.0 0.0 unk 0.0 
jump @STROMSUBMARINE_887 

:STROMSUBMARINE_632
if 
00E1:   player 0 pressed_key 3 
jf @STROMSUBMARINE_691 
07D5: set_car 5@ velocity_in_direction_XYZ 0.0 0.0 0.05 rotation_velocitiesXY 0.0 0.0 unk 0.0 
jump @STROMSUBMARINE_887 

:STROMSUBMARINE_691
if 
00E1:   player 0 pressed_key 14 
jf @STROMSUBMARINE_810 
9@ = Car.Angle(5@)
9@ += 180.0 
02F6: 11@ = sine 9@ // (float) 
02F7: 12@ = cosine 9@ // (float) 
11@ *= 0.01 
12@ *= 0.01 
11@ *= -1.0 
07D5: set_car 5@ velocity_in_direction_XYZ 11@ 12@ 0.01 rotation_velocitiesXY 0.0 0.0 unk 0.0 
jump @STROMSUBMARINE_887 

:STROMSUBMARINE_810
02F6: 11@ = sine 9@ // (float) 
02F7: 12@ = cosine 9@ // (float) 
11@ *= 0.001 
12@ *= 0.001 
11@ *= -1.0 
07D5: set_car 5@ velocity_in_direction_XYZ 11@ 12@ 0.007 rotation_velocitiesXY 0.0 0.0 unk 0.0 

:STROMSUBMARINE_887
if 
00E1:   player 0 pressed_key 0 
jf @STROMSUBMARINE_1002 
0494: get_joystick 0 direction_offset_to 0@ 1@ 8@ 3@ 
if 
  0@ == 0 
jf @STROMSUBMARINE_945 
jump @STROMSUBMARINE_1002 

:STROMSUBMARINE_945
if 
  0@ > 0 
jf @STROMSUBMARINE_977 
gosub @STROMSUBMARINE_1323 
jump @STROMSUBMARINE_1002 

:STROMSUBMARINE_977
if 
  0 > 0@ 
jf @STROMSUBMARINE_1002 
gosub @STROMSUBMARINE_1303 

:STROMSUBMARINE_1002
if 
00E1:   player 0 pressed_key 15 
jf @STROMSUBMARINE_328 
Car.LockInCurrentPosition(5@) = True
0633: AS_actor $PLAYER_ACTOR exit_car 

:STROMSUBMARINE_1031
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @STROMSUBMARINE_1350 
if 
   not Actor.InCar($PLAYER_ACTOR, 5@)
jf @STROMSUBMARINE_1031 
wait 500 

:STROMSUBMARINE_1075
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @STROMSUBMARINE_1350 
if 
   not Car.Wrecked(5@)
jf @STROMSUBMARINE_1350 
if and
  $ONMISSION == 0 
82BF:   not car 5@ sunk 
0202:   actor $PLAYER_ACTOR near_car 5@ radius 70.0 70.0 sphere 0 
jf @STROMSUBMARINE_1343 
if 
   Actor.Driving($PLAYER_ACTOR)
jf @STROMSUBMARINE_1203 
if 
   Actor.InCar($PLAYER_ACTOR, 5@)
jf @STROMSUBMARINE_1343 
Car.LockInCurrentPosition(5@) = False
jump @STROMSUBMARINE_1277 

:STROMSUBMARINE_1203
if and
00E1:   player 0 pressed_key 15 
0202:   actor $PLAYER_ACTOR near_car 5@ radius 7.0 7.0 sphere 0 
jf @STROMSUBMARINE_1075 

:STROMSUBMARINE_1240
wait 0 
80E1:   not player 0 pressed_key 15 
jf @STROMSUBMARINE_1240 
036A: put_actor $PLAYER_ACTOR in_car 5@ 
wait 500 
jump @STROMSUBMARINE_1075 

:STROMSUBMARINE_1277
$RYDER_TOTAL_PASSED_MISSIONS = 99 
068A: set_car 5@ repair_door 1 
wait 200 
jump @STROMSUBMARINE_75 

:STROMSUBMARINE_1303
9@ += 1.0 
Car.Angle(5@) = 9@
return 

:STROMSUBMARINE_1323
9@ -= 1.0 
Car.Angle(5@) = 9@
return 

:STROMSUBMARINE_1343
Car.LockInCurrentPosition(5@) = False

:STROMSUBMARINE_1350
Car.RemoveReferences(5@)
jump @STROMSUBMARINE_28 
0A93: end_custom_thread 
